package com.kayang.webapi.tool;


import com.kayang.nadapt.table.*;
import com.kayang.nadapt.util.LogHelper;
import com.kayang.nadapt.util.StringUtil;

public class Converter {

	/**
	 * 
	 * 将DataTable转化为xml字符串
	 * 
	 * @param _wrapper
	 *            xml文档碎片包裹标签名
	 * 
	 * @param dt
	 *            数据源
	 * @return String 返回一个代表当前DataTable的XML字符串
	 */
	public static String dataTable2XML(DataTable dt, String _wrapper) throws Exception {
		String wrapper = StringUtil.isNullOrEmpty(_wrapper) ? "" : _wrapper;
		wrapper = wrapper.trim();
		StringBuilder sb = new StringBuilder();
		try {
			for (DataRow row : dt.getRows()) {
				if (!StringUtil.isNullOrEmpty(wrapper)) {
					sb.append(StringUtil.format("<{0}>", wrapper));
				}
				for (DataColumn col : dt.getColumns()) {
					sb.append(StringUtil.format("<{0}>{1}</{2}>", col.getColumnName(), row.getValue(col.getColumnName()), col.getColumnName()));
				}
				if (!StringUtil.isNullOrEmpty(wrapper)) {
					sb.append(StringUtil.format("</{0}>", wrapper));
				}
			}
		} catch (Exception e) {
			LogHelper.error("将DataTable转化为xml字符串出错");
			e.printStackTrace();
		}
		return sb.toString();
	}

	/**
	 * 
	 * 将DataView转化为xml字符串
	 * 
	 * @param _wrapper
	 *            xml文档碎片包裹标签名
	 * 
	 * @param dv
	 *            数据源
	 * @return String 返回一个代表当前DataView的XML字符串
	 */
	public static String dataView2XML(DataView dv, String _wrapper) {
		String wrapper = StringUtil.isNullOrEmpty(_wrapper) ? "" : _wrapper;
		wrapper = wrapper.trim();
		StringBuilder sb = new StringBuilder();
		try {
			for (DataRowView row : dv) {
				if (!StringUtil.isNullOrEmpty(wrapper)) {
					sb.append(StringUtil.format("<{0}>", wrapper));
				}
				for (DataColumn col : dv.getColumns()) {
					sb.append(StringUtil.format("<{0}>{1}</{2}>", col.getColumnName(), row.get(col.getColumnName()), col.getColumnName()));
				}
				if (!StringUtil.isNullOrEmpty(wrapper)) {
					sb.append(StringUtil.format("</{0}>", wrapper));
				}
			}
		} catch (Exception e) {
			LogHelper.error("将DataView转化为xml字符串出错");
			e.printStackTrace();
		}
		return sb.toString();
	}
	
	
	public static Boolean toBoolean(String str){
		if(str.equals("true")){
			return true;
		}
		return false;
	}

}
